Batch script-এ ফাংশন সরাসরি সংজ্ঞায়িত করার সুযোগ নেই, তবে সাবরুটিন ব্যবহারের মাধ্যমে ফাংশনের মতো কার্যক্ষমতা অর্জন করা যায়। একটি ফাংশন সাধারণভাবে একটি নির্দিষ্ট কাজ সম্পন্ন করে এবং প্রয়োজনীয় আউটপুট রিটার্ন করে, তবে Batch script-এ ফাংশনগুলির কাজের ধরণ কিছুটা আলাদা। এখানে, সাবরুটিন ব্যবহার করে নির্দিষ্ট কার্যাবলী সম্পন্ন করা হয় এবং তা আবার অন্য স্থানে কল (CALL) করা হয়।
Batch script-এ ফাংশন এবং সাবরুটিন একে অপরের মতো কাজ করে, তবে ফাংশনের বিশেষত্ব হল এটি কোনও রিটার্ন ভ্যালু প্রদান করতে পারে। Batch script-এ রিটার্ন ভ্যালু ব্যবহারের কোনো সরাসরি পদ্ধতি নেই, তবে আপনি সাবরুটিনে কোন আউটপুট সেট করতে পারেন এবং পরে সেই আউটপুট অন্য স্থানে ব্যবহার করতে পারেন।
যেহেতু Batch script একটি সহজ স্ক্রিপ্টিং ভাষা, এটি পূর্ণ ফাংশনাল প্রোগ্রামিং ধারণা সমর্থন করে না, কিন্তু আপনি প্যারামিটার পাস করে সাবরুটিন বা ফাংশনগুলির মতো কাজ করতে পারেন।
Batch script-এ সরাসরি ফাংশন সংজ্ঞায়িত করা সম্ভব নয়, তবে আপনি সাবরুটিন তৈরি করে এবং সেই সাবরুটিন থেকে আউটপুট ফেরত নিয়ে কাজ করতে পারেন।
ফাংশন তৈরি করতে, CALL
কমান্ড ব্যবহার করা হয়, এবং এতে প্যারামিটার পাস করতে পারা যায়। এর মাধ্যমে, ফাংশনের মতো কোড ব্লক তৈরি করা যায়।
ধরা যাক, আপনি একটি সাবরুটিন তৈরি করতে চান যা দুটি সংখ্যার যোগফল প্রদান করবে। এটি ফাংশনের মতো কাজ করবে এবং আপনি বিভিন্ন জায়গায় একে কল (CALL) করতে পারবেন।
@echo off
CALL :addNumbers 10 20
echo Main script ends here
goto :eof
:addNumbers
set num1=%1
set num2=%2
set /a sum=%num1% + %num2%
echo Sum is: %sum%
goto :eof
এই উদাহরণে, আমরা CALL :addNumbers 10 20
দিয়ে দুইটি সংখ্যা পাস করছি। সাবরুটিনটি তারপর সেই সংখ্যা দুটি গ্রহণ করে তাদের যোগফল বের করে এবং প্রিন্ট করে।
:eof
(End Of File) নির্দেশনা দেয়।Batch script-এ সাবরুটিনে প্যারামিটার পাস করার জন্য %1
, %2
, %3
ইত্যাদি ব্যবহার করা হয়। এটি ফাংশনের মতো কাজ করে এবং আপনাকে বিভিন্ন ইনপুট প্রদান করার সুযোগ দেয়।
@echo off
CALL :multiplyNumbers 5 7
goto :eof
:multiplyNumbers
set num1=%1
set num2=%2
set /a product=%num1% * %num2%
echo The product is: %product%
goto :eof
এখানে, CALL :multiplyNumbers 5 7
দিয়ে দুটি সংখ্যা পাস করা হয়েছে, এবং ওই দুটি সংখ্যার গুণফল বের করা হয়েছে। %1
এবং %2
প্যারামিটার হিসেবে প্রথম এবং দ্বিতীয় সংখ্যাকে গ্রহণ করে এবং তাদের গুণফল প্রিন্ট করা হয়।
Batch script-এ সরাসরি রিটার্ন ভ্যালু দেয়ার পদ্ধতি নেই, তবে আপনি SET কমান্ডের মাধ্যমে একটি ভ্যারিয়েবল সেট করে সেই ভ্যারিয়েবলকে মূল স্ক্রিপ্টে ব্যবহার করতে পারেন।
@echo off
CALL :multiplyNumbers 5 10
echo The main script continues
goto :eof
:multiplyNumbers
set num1=%1
set num2=%2
set /a result=%num1% * %num2%
set result=%result%
goto :eof
এখানে, সাবরুটিনের মধ্যে একটি ভ্যারিয়েবল result
সেট করা হয়েছে, যা গুণফল ধারণ করে এবং এটি পরবর্তীতে ব্যবহৃত হতে পারে। এটি প্রকৃত রিটার্ন ভ্যালুর মতো কাজ করে, যদিও Batch script সরাসরি কোন রিটার্ন স্টেটমেন্ট সাপোর্ট করে না।
Batch script-এ সরাসরি ফাংশন সংজ্ঞায়িত করার পদ্ধতি নেই, তবে সাবরুটিন ব্যবহার করে আপনি ফাংশনের মতো কোড ব্লক তৈরি করতে পারেন। CALL
কমান্ডের মাধ্যমে সাবরুটিন কল করা হয় এবং প্যারামিটার পাস করা হয়। Batch script-এ কোন প্রকৃত রিটার্ন ভ্যালু থাকলেও, আপনি SET
কমান্ডের মাধ্যমে আউটপুট ফিরিয়ে এনে স্ক্রিপ্টের অন্যান্য অংশে ব্যবহার করতে পারেন।
common.read_more